Computer-implemented image acquisition system

ABSTRACT

An image acquisition system has a computer and one or more imaging devices coupled to the computer. Each imaging device has a device memory and is capable of capturing a digital image and storing the image in its memory. An image device manager is implemented in software on the computer to control operation of the imaging devices. The image device manager presents a user interface (UI) within the familiar graphical windowing environment. The UI has a context space that pertains to a particular imaging context (e.g., scanning, photography, and video). The UI also has a persistently-visible imaging menu positioned within the context space that lists options particular to the imaging context. For example, if the context space pertains to the digital camera context, the menu lists options to take a picture, store the image on the computer, send the image in an email, and so on. In the scanner context, the menu lists options to select an image type, preview an image, send the image to a particular destination, and scan the image. The image acquisition system also includes a set of application program interfaces (APIs) that expose image management functionality to applications. The APIs enable applications to manage loading and unloading of imaging devices, monitor device events, query device information properties, create device objects, capture images using the devices, and store or manipulate the images after their capture.

TECHNICAL FIELD

[0001] This invention relates to computer-implemented systems for managing imaging devices, such as digital cameras, scanners, and the like. This invention also relates to graphical window user interfaces, and particularly to user interfaces s used to facilitate capture and storage management of digital images. This invention further relates to operating systems and browsers that incorporate image device managers and user interfaces.

BACKGROUND

[0002] Digital imaging devices, such as scanners, cameras, video cameras, have been experiencing rapid growth in popularity as their price tags continue to decrease. Recreational photographers enjoy capturing pictures and videos and placing the digital files onto their computers for printing or emailing to friends and relatives. Businesses use scanners to digitally record documents used in day-to-day operation for archival purposes.

[0003] Other solutions to this problem already exist. For example, TWAIN and ISIS are two image acquisition systems that are available today. However, both of these solutions have problems. TWAIN lacks robustness and interoperability. ISIS is a proprietary design that renders it difficult to use with other applications.

[0004] Accordingly, a task set before the inventor was to create an image acquisition system that was based on an open architecture model and could be integrated with existing applications and operating systems to provide a convenient environment for the user.

SUMMARY

[0005] This invention concerns an image acquisition system that offers an open architecture to integration with existing operating systems and other applications.

[0006] In an exemplary implementation, the image acquisition system is implemented on computer, such as a desktop personal computer, having a processing unit, memory, and operating system. One or more imaging devices are coupled to the computer. Examples of the imaging devices include a scanner, a digital camera, a digital video camera, and so forth. Some imaging devices, such as digital cameras, have a device memory and are capable of capturing a digital image and storing the image on its memory. Other imaging devices, such as scanners, may not have their own device memory.

[0007] The image acquisition system further includes an image device manager that is implemented in software on the computer to control operation of the imaging devices. The image acquisition system presents a user interface (UI) within the familiar graphical windowing environment. The UI presents a graphical window having a context space that pertains to a particular imaging context (e.g., scanning, photography, and video). In the camera context, the context space presents image files stored on the camera memory and/or on the computer memory. In the scanner context, the context space includes a preview scan area that reveals a preview of the image in the scanner. In the video context, the context space presents video clips stored on the computer memory, but logically represented as belonging to the video camera.

[0008] The UI also has a persistently visible imaging menu positioned within the context space that lists options particular to an imaging context. For example, if the context space pertains to the camera context, the menu lists options to take a picture, store a captured image on the computer, send the image in an email, and so on. In the scanner context, the menu lists options to select an image type, preview an image, send the image to a particular destination, and scan the image.

[0009] The image acquisition system also includes a set of application program interfaces (APIs) that expose image management functionality to applications. The APIs enable applications to manage loading and unloading of imaging devices, monitor device events, query device information properties, create device objects, capture images using the devices, and store or manipulate the images after their capture.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010]FIG. 1 is a block diagram of an image acquisition system.

[0011]FIG. 2 is a block diagram of a software architecture for the image acquisition system.

[0012]FIG. 3 is a diagrammatic illustration of a graphical user interface window showing integration of the image acquisition system within a familiar file system setting.

[0013]FIG. 4 is a diagrammatic illustration of a graphical user interface window showing an opening window for managing imaging devices.

[0014]FIG. 5 is a diagrammatic illustration of a graphical user interface window for interfacing with a scanner.

[0015]FIG. 6 is a diagrammatic illustration of a graphical user interface window for interfacing with a digital camera.

[0016]FIG. 7 is a diagrammatic illustration of a graphical user interface window for interfacing with a digital video camera.

BRIEF DESCRIPTION OF THE APPENDIX

[0017] An attached appendix forms part of this document. The appendix contains a description of methods implemented in an image acquisition API (application program interface) utilized by the image acquisition system.

DETAILED DESCRIPTION

[0018] This invention concerns a computer-implemented image acquisition system that manages imaging devices (such as digital cameras, scanners, digital video cameras, and the like) and the images captured by them. In a preferred implementation, the image acquisition system is implemented in a general-purpose computer (e.g., personal computer, laptop, etc.) to manage imaging devices attached locally to the computer or coupled remotely via a network. The image acquisition system supports a graphical user interface windowing environment that integrates image device management with the same look and feel of familiar browsing user interfaces for conventional file systems. In this manner, a user encounters a familiar experience when managing the imaging devices and image files from his/her computer.

[0019] Exemplary System Architecture

[0020]FIG. 1 shows an image acquisition system 20 having a computer 22 coupled to multiple imaging devices 24-30. The computer 22 is a general-purpose computing device that is described and illustrated, for discussion purposes, as a desktop personal computer (PC). The computer 22 has a processing unit 40, a volatile memory 42 (e.g., RAM), a non-volatile data memory 44 (e.g., disk drive, etc.), a non-volatile program memory 94 (e.g., ROM, disk drive, CD-ROM, etc.), a display 48 (e.g., VGA monitor), and a universal serial bus (USB) 50. An operating system/browser 52 is stored in program memory 46 and executed on the processing unit 40 when the computer is booted. Examples of suitable operating systems 52 include the Windows-brand operating systems from Microsoft Corporation and the operating systems from Apple Computer. Although a USB 50 is shown and described, other bus architectures may be used, including general serial buses, a SCSI bus, an IEEE 1394 serial bus that conforms to the IEEE 1394 specification, and so forth.

[0021] The imaging devices 24-30 are coupled to the computer via a serial connection to the USB 50. Illustrated examples of the imaging devices include a scanner 24, a video camera 26, and a digital camera 28. However, other imaging devices (e.g., copiers, facsimile machines, etc.) may also be used in conjunction with aspects of this invention, as represented by the generic imaging device 30. Some of the imaging devices have their own memory, as represented by memory 32 in imaging device 30. For example, the digital camera may have its own memory, whereas the scanner typically does not have a memory.

[0022] The image acquisition system 20 includes an image device manager 60, which is implemented as a software component loaded on the computer 22. More particularly, the image device manager 60 is stored in program memory 46 and runs on processing unit 40 during execution. The image device manager 60 may be integrated into the operating system 52 (as shown), executed as a set of services, or implemented as a separate self-contained program.

[0023] The image acquisition system 20 also has a user interface 62, which is preferably a graphical user interface that presents a graphical window having a context space pertaining to the imaging context. Depending upon the particular context, the context space may list available imaging devices for which device drivers have been loaded onto the computer, or list digital image files captured by one or more of the imaging devices, or show an image being scanned in by the scanner.

[0024] The user interface 62 further presents a persistently visible imaging menu positioned within the context space. The imaging menu lists options that are particular to controlling the various imaging devices. For instance, when the context space pertains to the camera context, the menu lists a “Take Picture” option that is specific to operating the digital camera 28. Upon user selection of “Take Picture”, the image device manager 60 directs the digital camera 28 to record the current image obtained through the camera lens. In the scanner context, the menu lists a “Scan/Open” option that is particular to operating the scanner. Upon selection of this option, the image device manager 60 directs the scanner to scan the current image.

[0025] The image device manager 60 has an image device driver 64 and a set of APIs (application program interfaces) 66. The image device driver 64 controls operation of the imaging device in response to selected options in the context-specific menu. The driver 64 is the code that facilitates communication with the imaging device over the USB 50 and passes commands to capture an image, to read image files from the device's local memory, to obtain the device's properties, and so forth.

[0026] The APIs 66 define a set of interfaces that can be used to access the functionality of the image device manager 60. These APIs are described in detail in an Appendix to this disclosure, which is incorporated herein.

[0027] Exemplary Software Architecture

[0028]FIG. 2 shows a software architecture 70 for implementing the image acquisition system. At the kernel level, the architecture 70 includes kernel I/O drivers that include a bus driver to drive serial communication with the imaging device over the USB 50.

[0029] At the user level, a device driver 74 is loaded for the particular imaging device connected to the computer. The device driver 74 includes a device object, an optional UI, and optional image processing capabilities. An image device manager object 76 is called to initialize and select an image device, and create the device interface. The image device manager object 76 performs such tasks as instantiating a device driver object 74, determining the device status, monitoring events from the device, and so forth.

[0030] A COM (component object model) layer 78 exposes the device driver object 74 and image device manager object 76 to an upper level application 80. The application layer 80 represents both traditional TWAIN based applications that utilize a TWAIN compatibility layer 82, as well as new applications that support the APIs 66. Unlike the traditional TWAIN model, however, the TWAIN compatibility layer 82 interacts with the COM-based objects 74 and 76 rather than TWAIN-based devices.

[0031] Image Acquisition User Interface

[0032] The image acquisition system may be incorporated into the operating system, exist as a set of services, or be run as a separate, self-contained application. For discussion purposes, the image acquisition system is described as being integrated into an operating system that supports a graphical user interface windowing environment.

[0033]FIG. 3 shows an initial graphical user interface window 100 presented on the computer display 48. This window 100 is illustrated as the familiar “My Computer” screen within a browser-based windowing setting, which is well known to users of Windows-brand operating systems. The “My Computer” window 100 presents a context for listing the major components that make up the user's PC, including disk drives, printers, a control panel, and networking functionality.

[0034] Of interest to the image acquisition system is the integration and treatment of the imaging devices as a folder 102 organized with the other general computer components. This provides a convenient starting point for the user to access the imaging devices 24-30 that are coupled to the computer 22.

[0035] When the user activates the “Imaging Devices” folder icon 102 for the first time, an installation Wizard comes up to guide the user through the installation of an imaging device. Suppose, for example, the user has installed two scanning devices and a digital camera. Activating the “Imaging Devices” icon 102 navigates IS to a new “Imaging Devices” window.

[0036]FIG. 4 shows the “Imaging Devices” window 110 presented on the computer display 48. The “Imaging Devices” window 110 pertains to an imaging context and lists the imaging devices that have been installed on the computer. In this example, the window lists an “add imaging device” icon 112 and icons for the three installed devices: a “My Scanner” icon 114 for a locally installed scanner, a “My Camera” icon 116 for the installed camera, and a “Jake's Scanner” icon 118 for remotely installed (via a network connection) scanner. Activation of the “add imaging device” icon 112 recalls the wizard to enable the user to install any additional imaging devices.

[0037] The “Imaging Devices” window 110 distinguishes between devices that are currently available and those that are not available (e.g., offline, physically removed, etc.). Devices that are not available are dimmed and the user has the option of uninstalling them. In FIG. 4, the second scanner identified as “Jake's Scanner” is not available and hence the icon 118 is dimmed.

[0038] Activating one of the imaging devices listed in window 110 causes the image acquisition system to present different windows exhibiting contexts that are specific to the selected imaging device. Within these device-oriented windows, the image acquisition system presents context-specific menus that contain items or options pertinent and relevant to the particular imaging device.

[0039]FIG. 5 shows a “My Scanner” window 120 that is presented upon selection of the “My Scanner” icon 114 in FIG. 4. The scanner window 120 presents a context space 122 that pertains to the scanning context. The context space 122 has a preview scan space 124 and a persistently-visible, context-specific menu 126 positioned adjacent the preview scan space within the graphical window 120.

[0040] The context-specific menu 126 is always visible in the scanner window 120. The menu 126 offers options that are tailored to operating the scanner attached to the computer or remotely coupled to the computer via a network. While some of the options may be included in a context menu (i.e., a menu that appears near the pointer following a right moue click), the persistently-visible menu 126 lists operating specific options tailored to the scanner that are not included elsewhere in the user interface.

[0041] The menu 126 includes an image type selection 128 that has a pull-down list of various image types from which a user may select. A non-exhaustive list of image types includes color photograph, black and white photograph, color line art, black and white line art, and text. The image types included in the pull-down list 128 are specific to the device. Some imaging devices may not provide support for a given format and hence the format is omitted in that particular list.

[0042] A destination selection 130 has a pull-down list of various choices on what to do with the scanned image. For instance, the list 130 might include using the image in an application, faxing the image, printing the image, copying the image to a clipboard, and saving the image in a file. The destination selection simplifies the output operation for the user. For example, selection of a choice directly affects the acquisition parameters and image quality without requiring the user to know what parameters to set.

[0043] The persistently-visible context-specific menu 126 also has a “New Preview” command 132 that directs scanners to create a preview image of an image that is currently in the scanning bed. The image is presented in the preview scan space 124. When the image appears in the scan space 124, a preview control 134 is provided to allow the user to select a region of the image for a final scan. In the illustrated implementation, the control 134 is shown as a dashed rectangular box framing the picture. The user can manipulate the box 134 to capture all or less than all of the image. Upon selection of the region, the control can proportionally resize the image to reflect the size of the scanner bed and automatically configure the scanner to make the appropriate adjustments to capture the selected image portion.

[0044] The menu 126 includes a “Scan/Open” command 136 to direct the scanner to capture the image. When this command is selected, the scanner scans the image in its bed. Concurrently with this scanning action, the image progressively appears in the preview scan space 124 to visually convey that the scanner is scanning the image. In one implementation, the image is progressively displayed row-by-row from top to bottom of the image.

[0045] The menu 126 includes a “Save” option 138, which directs the scanner to capture the image as a file and store the file in the computer memory. The last listed option is a “Send to” option 140, which allows the user to send the image to various locations (or applications) on the PC, such as for packaging in a facsimile or email.

[0046]FIG. 6 shows a “My Camera” window 150 that is presented upon selection of the “My Camera” icon 116 in FIG. 4. The camera window 150 presents a context space 152 that pertains to the camera context. The context space 152 has a file space 154 and a persistently-visible, context-specific menu 156 positioned adjacent the file space within the graphical window 150.

[0047] The context-specific menu 156 is always visible in the camera window 150 and offers options that are tailored to operating the digital camera 28 attached to the computer. While some of the options may be included in a context menu (i.e., a menu that appears near the pointer following a right moue click), the persistently-visible menu 156 lists operating specific options tailored to the camera that are not included elsewhere in the user interface.

[0048] The menu 156 is illustrated as having two tabs: a pictures tab 158 and a camera tab 160. Table 1 contains the options and corresponding functions available on the pictures tab 158. TABLE 1 Option Function Open Opens a picture with a default registered application. Save in “My Pictures” folder Downloads the images from the camera and copies them to “My Pictures” directory on computer memory. Zoom Changes the window view and allow the user to select one picture at the time and zoom in/out of the picture once it's copied locally. Send to Allows the user to send the picture to various locations (or applications) on the PC. For example, the user may choose to “send” the picture to an “email recipient”. Lock on Camera Allows the user to lock a picture to prevent accidental deletion. Delete from Camera Allows the user to permanently remove the picture from the camera after a confirmation. Rotate to the Right Allows the user to rotate the picture 90 degrees to the right. Rotate to the Left Allows the user to rotate the picture 90 degrees to the left. View Properties Allows the user to view properties associated with the selected picture(s).

[0049] Table 2 contains the options and corresponding functions available on the camera tab 160. TABLE 2 Option Function Take Picture Triggers the camera to take a picture. Copy all Pictures Copies all the pictures to designated location on the PC. Remove all Pictures Deletes all pictures in the camera. Share Brings up a wizard for the local user to share the camera. Initialize Memory Card Enables user to initialize the storage card in the camera. View Properties Allows the user to view a summary of the camera properties.

[0050] The file space 154 lists files and/or folders that pertain to digital images taken by the digital camera. The files are the images themselves (e.g., JPG files) and the folders contain image files and/or other folders with image files in them.

[0051] The file space 154 presents the files that are currently stored on the camera. In this manner, the user can easily view the camera memory as if it were another memory of the computer. The UI allows easy integration of the camera control into the familiar windowing environment.

[0052] To add a picture to the file space, the user captures a picture using the “Take Picture” command in the camera menu 160. The picture then appears as a file in the file space 154. The user can then select the image file by clicking on the file and manipulating the picture using the commands on the pictures menu 158, such as “Rotate to the Left”, “Rotate to the Right”, “Zoom”, and “Send to”. The user can also save the image file to the computer memory using the command “Save in My Pictures folder”.

[0053]FIG. 7 shows a modified “My Camera” window 170 that supports dual-mode cameras (i.e., video and still). The modified window 170 is presented upon selection of the “My Camera” icon 116 in FIG. 4 and is similar to the window 150 of FIG. 6 in that it has a context space 172 with a file space 174 and a persistently-visible, context-specific menu 176. However, in this modified implementation, the context-specific menu 176 also has a video tab 178 to list options pertaining to operation of the video camera 26.

[0054] Notice also that one of the files in the file space 174 is a play-in-place video file 180. This play-in-place video file 180 can be actuated to play a video clip or stream within the small area depicted as box 180. That is, the static video icon in box 180 is replaced with a streaming video at the same location in the file space. Play-in-place video files 180 were first introduced in Media Manager, a multimedia application available from Microsoft.

[0055] Table 3 contains the options and corresponding functions available on the video tab 178. TABLE 3 Option Function Play Plays back a video stream from the video camera. Open Opens a video file with a default application. Capture Frame Directs the video camera to record a single still-image frame. Capture Video Directs the video camera to record a video clip. View Properties Allows the user to view a summary of the video camera properties.

[0056] Other commands may be added to the menu. For instance, a “stop” command may be employed to halt the capture of live video.

[0057] Image Acquisition API

[0058] The image acquisition API 66 enables applications to manage loading and unloading of all imaging devices, monitor device events, query device information properties, create device objects, capture images using the devices, and store or manipulate the images after their capture.

[0059] The interfaces are accessible by high level languages (e.g., Visual Basic) as well as lower level ones (e.g., C, C++, etc.). COM is a suitable interface. In this context, each device is exposed as a COM object, whereby the object provides a number of methods and properties associated with the imaging device.

[0060] As one exemplary implementation, there are three general objects: a device manager object, a camera object, and a scanner object. The objects are described generally below. A more detailed description of the objects and methods are provided in the Appendix to this disclosure. This Appendix is incorporated into the disclosure.

[0061] The device object contains device context and status information for a physical device. Once a device object is created for a physical device, the physical device controls what device properties are available and what values the properties may assume. There may be multiple device objects created for any physical device. However, a device object has exclusive access to a physical device before any operation (i.e., scan, take a picture, etc.) is performed. Exclusive access to a physical device is made available through a locking/unlocking mechanism.

[0062] The device manager is implemented as three objects that perform the following functions:

[0063] A CImageInDevMgr object is used to:

[0064] Create a device enumerator object

[0065] Create a device object when given a DeviceID

[0066] Display UI to let a user choose a device object

[0067] Display UI to both choose a device and acquire an image from the chosen device. A CEnumImageInDevInfo object is used to:

[0068] Enumerate all ImageIn devices on a system. For each device enumerated, a CImageInDevInfo object is returned.

[0069] A CImageInDevInfo object is used to:

[0070] Query device information properties from the ImageIn device. One of the properties, Device ID, can be used by CImageInDevMgr to create a device object.

[0071] The camera object may expose the following functions:

[0072] Open and close the device for communication

[0073] Control the device

[0074] Update and read device properties

[0075] Update and read picture properties

[0076] Download, remove, and upload pictures to device

[0077] The scanner object may expose the following functions:

[0078] Open and close the device for communication

[0079] Control the device

[0080] Update and read device properties

[0081] Set operation intent

[0082] Although the invention has been described in language specific to structural features and/or methodological steps, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or steps described. Rather, the specific features and steps are disclosed as preferred forms of implementing the claimed invention. 

1. An image acquisition system comprising: a computer having a memory; an imaging device coupled to the computer, the imaging device having a device memory, the imaging device capturing a digital image and storing the image on one of the computer memory or the device memory; an image device manager executable on the computer to control operation of the imaging device; and a user interface with a context space and a persistently-visible imaging menu positioned within the context space, the imaging menu listing options that are particular to controlling the imaging device and managing images captured by the imaging device.
 2. An image acquisition system as recited in claim 1, wherein the imaging menu includes a capture option that directs the imaging device to capture an image and to store the image in the memory of the computer.
 3. An image acquisition system as recited in claim 1, wherein the context space lists image files stored on at least one of the device memory or the computer memory.
 4. An image acquisition system as recited in claim 1, wherein: the imaging device is a scanner; and the context space presented by the user interface contains a preview scan area that shows a preview of an image in the scanner.
 5. An image acquisition system as recited in claim 1, wherein: the imaging device is a scanner; and the context space presented by the user interface contains a scan area that is initially empty prior to a time when the scanner scans an image and then progressively displays the image as the scanner scans the image.
 6. An image acquisition system as recited in claim 1, wherein the context space exhibits a play-in-place video file at a location, the play-in-place video file being actuatable to play a video stream at the location in the context space.
 7. An image acquisition system as recited in claim 1, further comprising an operating system stored in the memory and executable on the computer, the image device manager being incorporated into the operating system.
 8. An image acquisition system as recited in claim 1, further comprising a browser stored in the memory and executable on the computer, the image device manager being incorporated into the browser.
 9. In an image acquisition system having a computer and an imaging device coupled to the computer, an image manager implemented in software stored in the computer comprising: a user interface presenting a context space of an imaging context and a persistently-visible imaging menu positioned within the context space, the imaging menu listing options that are particular to operating the imaging device and managing image files; and an image device driver to control operation of the imaging device in response to selected options in the imaging menu.
 10. An image manager as recited in claim 9, wherein the imaging menu includes a capture option to capture an image from the imaging device, and the image device driver directs the imaging device to capture the image into an image file for storage on the imaging device or the computer in response to selection of the capture option.
 11. An image manager as recited in claim 9, wherein the context space holds image files and the imaging menu includes an option to operate on one or more of the image files.
 12. An image manager as recited in claim 9, wherein the context space exhibits a play-in-place video file at a location, the play-in-place video file being actuatable to play a video stream at the location in the context space.
 13. An image manager as recited in claim 9, wherein the imaging device coupled to the computer is a scanner and the context space of the user interface pertains to a scanner context and contains an area that is initially empty prior to a time when the scanner scans an image and then progressively displays the image as the scanner scans the image.
 14. An operating system embodied on a computer readable medium comprising an image manager as recited in claim
 9. 15. A file system embodied on a computer readable medium comprising an image manager as recited in claim
 9. 16. A browser program embodied on a computer readable medium comprising an image manager as recited in claim
 9. 17. A user interface embodied on a computer-readable medium and executable on a computer comprising: a file space of a selectable context, the file space exhibiting one or more files and/or folders pertaining to the context; and a persistently-visible context-specific menu positioned within the file space adjacent to the files and/or folders, the context-specific menu listing options that are particular to the context of the file space.
 18. A user interface as recited in claim 17, wherein the files comprise digital image files and the folders comprise sets of digital image files.
 19. A user interface as recited in claim 17, wherein the context of the file space pertains to imaging devices, and the options listed in the context-specific menu include a command to capture digital images using an imaging device coupled to the computer.
 20. A user interface as recited in claim 17, wherein the file space also exhibits a play-in-place video file at a location, the play-in-place video file being actuatable to play a video stream at the location in the file space.
 21. A user interface as recited in claim 17, wherein the options in the context-specific menu change in response to changing the context of the file space.
 22. A file system embodied on a computer-readable medium incorporating the user interface as recited in claim
 17. 23. An operating system embodied on a computer-readable medium incorporating the user interface as recited in claim
 17. 24. A browser embodied on a computer-readable medium incorporating the user interface as recited in claim
 17. 25. For a computer-implemented scanning system having a scanner coupled to a computer, a user interface comprising a graphical window having a preview scan space, the preview scan space being initially empty prior to a time when the scanner scans an image, the user interface progressively displaying the image within the preview scan space to visually convey that the scanner is scanning the image.
 26. A user interface as recited in claim 25, wherein the user interface progressively displays the image row-by-row.
 27. A user interface as recited in claim 25, wherein the user interface progressively displays the image currently with the scanner scanning the image.
 28. A user interface as recited in claim 25, further comprising a s persistently-visible menu positioned adjacent the preview scan space within the graphical window, the menu containing options that are particular to operating the scanner.
 29. A user interface as recited in claim 25, further comprising a destination list that presents a user with choices on what to do with the scanned image.
 30. A user interface as recited in claim 25, further comprising a control to enable a user to select which portion of the image to scan in a final output.
 31. A file system embodied on a computer-readable medium incorporating the user interface as recited in claim
 25. 32. An operating system embodied on a computer-readable medium incorporating the user interface as recited in claim
 25. 33. A browser embodied on a computer-readable medium incorporating the user interface as recited in claim
 25. 34. For a computer-implemented scanning system having a scanner coupled to a computer, a user interface embodied on a computer-readable medium and executable on the computer comprising: a graphical window having a preview scan space to hold a preview of the image to be scanned by the scanner; and a control to enable a user to select a portion of the image to be scanned by the scanner.
 35. An operating system embodied on a computer-readable medium incorporating the user interface as recited in claim
 34. 36. A browser embodied on a computer-readable medium incorporating the user interface as recited in claim
 34. 37. An application program interface for an image acquisition system, the application program interface being embodied on a computer-readable medium and having methods for performing the following functions: creating a device object for an imaging device; displaying a user interface to enable a user to choose the device object; displaying a user interface to enable the user to capture an image using the imaging device; and querying the imaging device for properties.
 38. An application program interface for an image acquisition system, the application program interface being embodied on a computer-readable medium and having methods for performing the following functions: opening and closing a camera for communication; controlling the camera; and reading properties associated with the camera. reading properties associated with pictures taken by the camera; and manipulating pictures stored in a memory of the camera.
 39. An application program interface for an image acquisition system, the application program interface being embodied on a computer-readable medium and having methods for performing the following functions: opening and closing a scanner for communication; controlling the scanner; and reading properties associated with the scanner.
 40. A computer-implemented method for execution in a graphical user interface windowing environment, comprising the following steps: presenting a set of one or more files and/or folders in a file space within a graphical window; presenting a persistently-visible, context-specific menu within the file space adjacent to the files and/or folders; and listing options in the context-specific menu that are particular to operating on the files and/or folders in the file space.
 41. A computer-implemented method as recited in claim 40 wherein the presenting step comprises the step of presenting a set of digital image files.
 42. A computer-implemented method as recited in claim 40 further comprising the step of operating on the files and/or folders in response to selection of an option in the context-specific menu.
 43. A computer-implemented method as recited in claim 40 further comprising the step of exhibiting a play-in-place video file at a location in the file space, the play-in-place video file being actuatable to play a video stream at the location in the file space.
 44. A computer-implemented method as recited in claim 40 further comprising the following steps: presenting a new set of one or more files and/or folders in the file space; and listing new options in the context-specific menu that are particular to operating on the new set of files and/or folders.
 45. For a computer-implemented scanning system having a scanner coupled to a computer, a computer-implemented method for executing a scanning software application in a graphical user interface windowing environment, comprising the following steps: presenting a preview scan space within a graphical window, the preview scan space being initially empty; and progressively displaying an image within the preview scan space to visually convey that the scanner is scanning the image.
 46. A computer-implemented method as recited in claim 45 wherein the displaying step comprises the step of building the image row-by-row.
 47. A computer-implemented method as recited in claim 45 wherein the displaying step comprises the step of building the image simultaneously as the scanner scans the image.
 48. A computer-implemented method as recited in claim 45 further comprising the following steps: presenting a persistently-visible menu within the preview scan space within the graphical window; and listing options in the menu that are particular to operating the scanner.
 49. For a computer-implemented scanning system having a scanner coupled to a computer, a computer-implemented method for executing a scanning software application in a graphical user interface windowing environment, comprising the following steps: presenting a preview scan space to hold a preview of the image to be scanned by the scanner; and enabling a user to select a portion of the image to be scanned by the scanner. 